import { searchBykeyword, fileUtils, downloadImgs, exitTLS, pushToWeChat, fakeExitTLS } from './axios.js'

main2()

// ===================== 爬编辑精选 =====================
export async function main2(reLunchTimes = 100) {
  try {
    console.log(`\n✨ 正在爬取编辑精选，你这是要把人家数据库掏空呀！...`)
    let reachedEnd = false
    let page = fileUtils.resumeCrawling().ecPageToProcess // 从上次爬取的页码开始

    while (!reachedEnd) {
      const res = await searchBykeyword('编辑精选', page)

      // 等待1秒
      await new Promise(resolve => setTimeout(resolve, 1000))

      if (!res) continue
      if (res.pages <= page || res.imgs.length === 0) reachedEnd = true

      console.log(`✨ 正在下载第 ${page} 页的图片（总共 ${res.pages} 页， ${res.total} 张图片）`)
      await downloadImgs('编辑精选', res.imgs)

      fileUtils.writeConfig({ lastEcPage: page++ }) // 存档编辑精选已爬取页码
    }

    console.log(`✅ 你是真离谱！整个数据库都被你爬空了... \n`)
  } catch (error) {
    fileUtils.logError(error)

    // 如果脚本被阻塞，自动重启
    if (reLunchTimes === 0) {
      console.log('❌ 达到最大重启次数！爬虫进程结束...')
      pushToWeChat('pixabay.com\n达到最大自动重启次数！爬虫挂了/(ㄒoㄒ)/~~\n目前爬取到第 ' + fileUtils.config.lastEcPage + ' 页！\n@周辉 @邓雄威 来人！救虫啊！')
      exitTLS()
    } else {
      fileUtils.logError('❌ 脚本阻塞，正在自动重启...')
      fakeExitTLS()
      main2(reLunchTimes - 1)
    }
  }
}
